c语言中%s和%d的区别
1 /************************************************************************* 2 > File Name: ptr_both.c 3 > Author: Mr.Yang 4 > Purpose:思考指针指向字符串和指向整型的区别 5 > Created Time: 2017年06月03日 星期六 17时37分17秒 6 ************************************************************************/ 7 8 #include <stdio.h> 9 #include <stdlib.h> 10 #include <string.h> 11 12 int main(void) 13 { 14 /*指针指向字符串演示*/ 15 char *s1 = "hello"; 16 char *p1 = strchr(s1,'l');//返回首次出现该字符串的地址 17 printf("%s\n",p1);//%s它要求参数是一个指针!!! puts函数也要求它的参数是一个指针,而不能是数值!!! 18 19 /*指针指向整型演示*/ 20 int s2[] = {1,2,3,4}; 21 int *p2 = s2; 22 printf("%d\n",*p2);//%d它要求参数是一个值!!! 23 24 return 0; 25 }
这也就解释了为什么printf同要输出值,字符串和整型需要不同类型参数!!!
怎么从c语言的核心理解这两个区别,也就是怎么从字符串、整形的存储原理来理解???