学习JNI(七) :12_指针和数组之间的关系/13_指针的运算/14_指针的常见错误

 指针和数组之间的关系

#include  
/**
 arr[] 数组
 length 数组的长度 
**/
void printArr(char arr[], int length){
     int i=0;
     for(;i

指针的运算

#include  
main()  
{
      int i = 3;   //山东省 解放路 小房子 门牌号30 里面住了一个3 
      double j = 5; //芝加哥 解放路 大房子 门牌号50  里面住了一个5 
      
      int* p = &i;
      double* q = &j;  
        
      //printf("p-q = %#x\n",p-q);  这样的计算没有任何意义。
      
      //指针的计算,只会在数组里面 ,连续的内存空间进行计算才有意义。 
      
      int arr[5] = {1,2,3,4,5}; 
      
      printf("p-q = %d\n",&arr[4]-&arr[0]);
    
      system("pause"); 
}
#include  
main()  
{
      //32位 4byte 
      int i = 3;  
      int* ip = &i;
      double d = 3.143;
      double* dp = &d;
      float f = 234.2;
      float* fp = &f;
      long l = 32424324;
      long* lp = &l;
      long long ago = 30;
      long long* agop = &ago;
      char c = 'a';
      char* cp = &c;
      
      printf("指针的长度 ip=%d\n",sizeof(ip));
      printf("指针的长度 dp=%d\n",sizeof(dp));
      printf("指针的长度 fp=%d\n",sizeof(fp));
      printf("指针的长度 lp=%d\n",sizeof(lp));
      printf("指针的长度 agop=%d\n",sizeof(agop));
      printf("指针的长度 cp=%d\n",sizeof(cp));
    
      system("pause"); 
}

学习JNI(七) :12_指针和数组之间的关系/13_指针的运算/14_指针的常见错误_第1张图片


13_指针的常见错误

#include  
main()  
{
      short s = 5;
      //1.数据类型要和指针类型完全匹配 
     // float* fp = &s; 
      //printf("*fp=%f\n",*fp);
      
      
      //2.指针变量未经赋值,不可使用。 
      int* p ;
      // 野指针 ,非常危险的。 
      printf("*p=%d\n",*p);
      *p = 3242; 
    
      system("pause"); 
}
#include  
#DEFINE  PI 3.1415
void func(int** m){
     int i = 3;
     int* p = &i;
     *m = p;
     printf("p=%#x\n",p);    
} 


main()  
{
      int* r ;//指针变量 用于存放地址。
      
      func(&r);
      printf("---sadfdsdaf-\n");
      printf("*r=%d\n",*r); //野指针 
      printf("主函数main r = %#x\n",r); 
      system("pause"); 
}

 

学习JNI(七) :12_指针和数组之间的关系/13_指针的运算/14_指针的常见错误_第2张图片

 

 

 

 

你可能感兴趣的:(dev,c++,C,JNI/NDK,Android)