//printf怎么输出?
//=>如何正确使用%s,%c,%d,%p
%d试例
/* include<stdio.h>
int main(void) {
int a[36] = { 1,2,3,4,5 };
printf("%d", *a);//=>一个 =>*a是值
return 0;
}=>输出1
*/
%c试例
/* #include<stdio.h>
int main(void) {
char op[20] = { “123” };
char*p = op;
printf("%c", *op);//=>一个 =>*op是值
return 0;
}=>输出1
*/
%s试例
/* #include<stdio.h>
int main(void) {
char op[20] = { “123” };
char*p = op;
//op是指针(地址),*op是值,p是指针,*p是值
printf("%s", op);//=>一串 =>op是指针(地址)或者printf("%s",p);=>p是指针
return 0;
}=>输出123
*/
总结:
//用printf输出的话,
//如果是用 %d 的话,符号这个["",]后面要写 值 ;=>一个整数=>一个就是值
//如果是用 %c 的话,符号这个["",]后面要写值;=>一个字符整数=>一个就是值
//如果是用 %s 的话,符号这个["",]后面要写地址=>一串字符串=>一串就是地址
> //即,单个就要放值,不少于一个(即一串)要放值
//究竟用printf输出,符号这个["",]后面是写值还是地址其实是就看要输出一串字符串,还是一个字符或整数
//补充:%p=>专门输入地址,用printf输出,符号这个["",]后面要写地址
printf与数组关系的使用
/* #include<stdio.h>
int main(void) {
int a[36] = { 1,2,3,4,5 };
printf("%d", a[0]);===>a[0]是值
return 0;
}//输出第一个元素的值1
*/
/* #include<stdio.h>
int main(void) {
int a[36] = { 1,2,3,4,5 };
printf("%d", a);====>a是地址
return 0;
}//出第一个元素的地址6487424
*/
/* #include<stdio.h>
int main(void) {
int a[36] = { 1,2,3,4,5 };
printf("%d", *a);====>*a是值
return 0;
}//输出第一个元素的值1
*/
由以上三个例子,我们看到,
对于同一个数组 int a[36] = { 1,2,3,4,5 };
a[0]代表的是第一个元素的值;
*a则代表的也是第一个元素的值;
而 a则代表的是第一个元素的地址;
由此,我们可以推出,
对一个数组,
int a[36] = { 1,2,3,4,5 };
a[i]表示值,即用printf输出时,是值;
*a[i]则表示地址,即用printf输出时,是地址;(当然还要额外定义一个指针,这里不要乱用,指针果然博大精深,还要在仔细地思考)
没写完,还在更新…