根据定义,在C中,字符串是一个字符数组
int main() {
char *name="David Bolton";
printf("My name is %s\r\n",name) ;
return 0;
}
行char * name="David Bolton";
将name定义为指向字符串中第一个字符的指针,即'D'。那么,指针名称应该保存地址但是打印'David Bolton'为什么?是什么原因?它只保存D的地址为什么要打印整个字符串?
答案 0 :(得分:5)
因为您使用%s
,C会知道您要打印一个字符串,因此,它将逐个字符地打印到屏幕,直到它符合符号\0
。
答案 1 :(得分:3)
%s
格式说明符指示printf
将指向数据的数据视为由空(零)字节终止的字符数组。如果要打印指针地址,请使用%p
。
答案 2 :(得分:2)
在printf
格式字符串中,%s
说明符假定相应的参数是指向字符数据的指针。这正是name
的原因。
答案 3 :(得分:2)
C语言中的字符串用于确定0终止。
" David Bolton"
记忆图片:David Bolton \ 0 因此,可以在指向显示中找到地址区域中0位置的指南。E.g。)
void print_string(char *string){
while('\0'!=*string){
putchar(*string++);
}
}
答案 4 :(得分:1)