ماذا يفعل إضافة واحد إلى مجموعة شخصية في C؟
سؤال
أنا أبحث من خلال بعض التعليمات البرمجية لأغراض التعلم. أنا أعمل من خلال هذا الجزء من الكود.
// e.g. const unsigned char data={0x1,0x7C ... }
unsigned char buf[40];
memset(buf,0,40);
buf[0] = 0x52;
memcpy(buf+1, data, length); // What does buf+1 do in this situation?
على السطر الأخير حيث يسمى Memcpy ماذا يفعل Buf+1؟ BUF عبارة عن مجموعة شخصية ، فماذا يفعل +1؟
المحلول
في C ، كل اسم صفيف هو مؤشر ، لذلك يعني BUF هنا أيضًا المؤشر الذي يشير إلى BUF [0].
نصائح أخرى
buf+1
يعادل &(buf[1])
buf+1
بالضبط مثل &(buf[1])
. وبعبارة أخرى ، فإنه يعيد مؤشر إلى شخصية BUF الثانية (الفهرس 1).
لا تنتمي إلى StackOverflow