字符串指针初始化

来源:百度知道 编辑:UC知道 时间:2024/05/31 19:07:03
char *s="china";
等价于char *s;
s="china";
应该是把数据段“china”的首地址给指针s,而不是整个内容啊,为什么这个还是对滴捏?

char *s="china";
等价于char *s;
s="china";
这是两种赋初值的方法,第一种是在定义的时候赋初值,第二种是先定义,再在以后赋初值,它们的结果都上让指针s指向首地址,也就是指向了内容的第一个字母c~~好好看看c语言程序设计那本书~~

这个“china”这个相当于数组。
他们在存储单位里的地址是相连着的。
所以当你把首地址给打针s的时候,他就知道后面的所有字符了。
楼主要把china整个看着一个整体,存放在存储单位

在此例中,china作为常量存储于程序中,所以,只要传递一个首地址就可以了。
因为对字符数组的调用都是通过首地址进行的。

#include<stdio.h>
void main()
{
char *s,p[]="china";//这样分解看清楚点了嘛.
s=p;

printf("%s",s);
}

s="china"就是把首地址给指针S啊;