I've posted this here before and it's what has worked for me and a few others who told me it worked for them as well. Ymmv.
People sometimes struggle with C when they start from scratch or come from a higher to lower level of abstraction. I struggled with this for a long time till I did these things:
I would not try and understand how the higher level abstractions translate to the lower C level. I would instead learn from first principles on how a computer works and build the abstractions up from there. You will learn how a CPU works. How the data bus and registers are used. How memory is laid out and accessed. The call stack and how that works, etc.. This will go a long way in understanding how C sits on top of this and how its data structures like arrays and structs map to this and understanding how pointers work the way they do and why. Check out these resources:
- Read Code: The Hidden Language of Computer Hardware and Software
- Watch Exploring How Computers Work
- Watch all 41 videos of A Crash Course in Computer Science
- Take the Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course)
- Take the CS50: Introduction to Computer Science course.
- Grab a copy of C Programming: A Modern Approach and use it as your main course on C.
- Follow this Tutorial On Pointers And Arrays In C
The first four really help by approaching C from a lower level of abstraction (actually the absolute lowest level and gradually adding layers of abstraction until you are at the C level which, by then is incredibly high!) You can do all four or pick one or two and dive deep. The 5th is a great introduction to computer science with a decent amount of C programming. The sixth is just the best tutorial on C. By far. The seventh is a deep dive into pointers and one of best tutorial on pointers and arrays out there (caveat, it's a little loose with the l-value/r-value definition for simplicity sake I believe.)
https://github.com/practical-tutorials/project-based-learning#cc
https://stackoverflow.blog/2020/10/05/play-the-long-game-wh⁷en-learning-to-code/
You can also check out Teach Yourself Computer Science
Here is a decent list of 8 Books on Algorithms and Data Structures For All Levels