[c/c++] programming之路(29)、阶段答疑  一、指针不等于地址 二、指针和字符串数组的区别

[c/c++] programming之路(29)、阶段答疑
 一、指针不等于地址
二、指针和字符串数组的区别

指针不仅有地址,还有类型,是一个存储了地址的变量,可以改变指向;而地址是一个常量

#include<stdio.h>
#include<stdlib.h>

void main() {
    int num=10;
    int data=20;
    printf("num=%d,&num=%p
data=%d,&data=%p
",num,&num,data,&data);
    
    //用键盘初始化一个指针:初始化一个数据需要数据的地址,初始化一个指针需要指针的地址
    int *p;
    scanf("%p",&p);//输入num的地址后,p=&num
    *p=5;

    int *pp;
    int pdata;
    scanf("%p",&pdata);//输入data的地址后,pdata=&data
    pp=(int *)pdata;//把整数转换成指针
    *pp=11;

    printf("num=%d,&num=%p
data=%d,&data=%p
",num,&num,data,&data);

    system("pause");
}

[c/c++] programming之路(29)、阶段答疑
 一、指针不等于地址
二、指针和字符串数组的区别

二、指针和字符串数组的区别

#include<stdio.h>
#include<stdlib.h>

void main() {
    char *p="abcdefg";//p是一个指针,存储了常量字符串的地址
    char str[10]="abcdefg";//str是数组,接受了常量字符串的赋值
    printf("%s,%s
",p,str);
    printf("%d,%d
",sizeof(p),sizeof(str));
    //*p='A';//常量不可修改
    str[0]='A';
    printf("%s,%s
",p,str);//数组是变量,可以修改

    system("pause");
}

[c/c++] programming之路(29)、阶段答疑
 一、指针不等于地址
二、指针和字符串数组的区别

[c/c++] programming之路(29)、阶段答疑
 一、指针不等于地址
二、指针和字符串数组的区别

[c/c++] programming之路(29)、阶段答疑
 一、指针不等于地址
二、指针和字符串数组的区别

[c/c++] programming之路(29)、阶段答疑
 一、指针不等于地址
二、指针和字符串数组的区别

[c/c++] programming之路(29)、阶段答疑
 一、指针不等于地址
二、指针和字符串数组的区别

#include<stdio.h>
#include<stdlib.h>
#include<string.h>//c语言头文件,无string类

void main0() {
    char str[20]="hello,yincheng ok";
    char ch='o';
    char *p=str;
    while (*p!='