概念
a表示数据本身。
 &a表示a对应的地址。
 *a表示存a数据的地址。
#include<stdio.h>
int main()
{
int a = 10;
int *b = &a;
int* d = &a;
int c = *b;                                                                                                      
printf("b = %p\n", b);
printf("d = %p\n", d);
printf("c = *b = %d\n",c);
printf("&a = %p\n",&a);
printf("*b = %d\n", *b);
}

#include <stdio.h>
#include <string.h>
void example(volatile int *a){
  #pragma HLS INTERFACE m_axi port=a depth=50
  int i;
  int buff[50];
  memcpy(buff,(const int*)a,50*sizeof(int));  
 for(i=0; i < 50; i++){
   buff[i] = buff[i] + 100;}
  }
#include <stdio.h>
#include <string.h>
void example(volatile int *a){    //volatile每次从源头赋值处读,非从内存中读取
  #pragma HLS INTERFACE m_axi port=a depth=50
  int i;
  for(i=0; i < 10; i++){
      *a = *a + 100;
//    a = a + sizeof(int);  //指针加1,不是加4,原因如下
      printf("a = %p\n",a);
      a++;}   //指针加一等于加一个存储单元字节数,这里是4
    }

数组传送
方法一memcpy
 #include <stdio.h>
 #include <string.h>
 void example(volatile int a){
 #pragma HLS INTERFACE m_axi port=a depth=50
 int i;
 int buff[50];
 memcpy(buff,(const int)a,50*sizeof(int));
 for(i=0; i < 50; i++){
 buff[i] = buff[i] + 100;}
 }
 方法二指针加法
#include <stdio.h>
 #include <string.h>
void example(volatile int *a){ //volatile每次从源头赋值处读,非从内存中读取
 #pragma HLS INTERFACE m_axi port=a depth=50
 int i;
 for(i=0; i < 10; i++){
 *a = *a + 100;
 // a = a + sizeof(int); //指针加1,不是加4,原因如下
 printf(“a = %p\n”,a);
 a++;} //指针加一等于加一个存储单元字节数,这里是4
 }
 方法三指针变数组
 #include <stdio.h>
 #include <string.h>
 void example(volatile int *a){
 #pragma HLS INTERFACE m_axi port=a depth=50
 int i;
 for(i=0; i < 10; i++){
 a[i] = a[i] + 100;
 printf(“a = %p\n”,a);
 }
 }



















